package com.jcli._进制转化;

public class MultiHexToBinaryConverter {

    public static void main(String[] args) {
        // 输入多个以空格隔开的16进制字符串
        String hexValues = "1A3F 8D2B FFFF";

        // 调用方法进行转换
        String binaryResult = convertMultiHexToBinary(hexValues);

        // 输出结果
        System.out.println("16进制数: " + hexValues);
        System.out.println("对应的2进制数: " + binaryResult);
    }

    /**
     * 将多个以空格隔开的16进制字符串转换为对应的2进制字符串
     *
     * @param hexValues 多个以空格隔开的16进制字符串
     * @return 对应的2进制字符串
     */
    public static String convertMultiHexToBinary(String hexValues) {
        // 分割输入的16进制字符串
        String[] hexArray = hexValues.split("\\s+");

        // 创建 StringBuilder 以存储结果
        StringBuilder binaryResult = new StringBuilder();
        System.out.print("10进制数:");
        // 对每个16进制字符串进行转换
        for (String hexValue : hexArray) {
            // 将16进制字符串转换为BigInteger类型
            long decimalValue = Long.parseLong(hexValue, 16);

            // 将BigInteger类型转换为2进制字符串，并追加到结果中
            binaryResult.append(Long.toBinaryString(decimalValue)).append(" ");
            System.out.print(decimalValue+" ");
        }
        System.out.println();
        // 删除末尾的空格
        return binaryResult.toString().trim();
    }
}
